﻿using System;
using System.Text;
using System.Drawing;
using System.Buffers;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;

public static partial class glDRIVE
{
    /*
    函数 gl.pir1
    最小二乘曲线拟合
    参数 x: x[n]存放给定数据点的X坐标。
    参数 y: y[n]存放给定数据点的Y坐标。
    参数 n: 给定数据点的个数。
    参数 a: a[m]返回m-1次拟合多项式的系数。
    参数 m: 拟合多项式的项数。要求m<=min(n,20)。
    参数 dt: dt[3]分别返回误差平方和，误差绝对值之和与误差绝对值的最大值。
    */

    public static string drive_pir1()
    {
        int i;
        double[] x = new double[20];
        double[] y = new double[20];
        double[] a = new double[6];
        double[] dt = new double[3];
        for (i = 0; i <= 19; i++)
        {
            x[i] = 0.1 * i;
            y[i] = x[i] - Math.Exp(-x[i]);
        }
        gl.pir1(x, y, 20, a, 6, dt);

        string rs = "";
        rs += gl.html_table("X:", x);
        rs += gl.html_table("Y:", y);
        rs += gl.html_table("拟合多项式系数", a);
        rs += gl.html_table("误差平方和,误差绝对值和,误差绝对值最大值:", dt);
        return rs;
    }
}